package com.tudouji.project.bill.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.flow.service.pojo.BasePojo;
import com.flow.service.pojo.flow.FlowTempNode;
import com.tudouji.framework.aspectj.lang.annotation.Excel;
import com.tudouji.project.farepay.domain.FarepayDetails;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 充值报表对象 recharge
 *
 * @author wf
 * @date 2021-04-15
 */
@Data
public class Recharge extends BasePojo
{
    private static final long serialVersionUID = 1L;

    /** 主键 */
    private String guid;

    /** 客户id */
    @Excel(name = "客户id")
    private String customerid;

    /** 充值金额 */
    @Excel(name = "充值金额")
    private BigDecimal amount;

    /** 状态:0-已删除 1-待审批 2-已充值 */
    @Excel(name = "状态:0-已删除 1-待审批 2-已充值")
    private Integer status;

    /** 流程id */
    @Excel(name = "流程id")
    private String flowid;

    /** 操作人id */
    @Excel(name = "操作人id")
    private String operatorid;

    /** 操作人 */
    @Excel(name = "操作人")
    private String operator;

    /** 最后更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "最后更新时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date lastupdate;

    /** 客户名称 */
    @Excel(name = "客户名称")
    private String customer;

    /** 编码 */
    @Excel(name = "编码")
    private String code;

    /** 类型 */
    @Excel(name = "类型:1.货币充值2.非货币充值3.支付货款")
    private Integer type;

    /** 部门id */
    @Excel(name = "部门id")
    private String departid;

    /** 部门 */
    @Excel(name = "部门")
    private String departname;

    /** 1-充值 2-退款 3-补货 */
    @Excel(name = "1-充值 2-退款 3-补货")
    private Integer flag;

    /** 退货订单id */
    @Excel(name = "退货订单id")
    private String orderid;

    /** 退货订单编号 */
    @Excel(name = "退货订单编号")
    private String ordercode;

    /** 申请金额 */
    @Excel(name = "申请金额")
    private BigDecimal applyamount;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createtime;

    private String remark;

    private List<FlowTempNode> nodes;
    private Integer[] stats;
    private String[] deptIds;
    private String search;
    private String keyword;

    private String flagName;
    private String statusName;
    private String typeName;

    private Long sellformId;
    private String sellformCode;

    private List<FarepayDetails> items;
    @Override
    public void prepareForProcess(){
        setBusTable("recharge");
    }
}
